package com.vf.admin.miaodong.service;

import com.vf.admin.common.entity.Result;
import com.vf.admin.common.splitpage.SplitPageBean;
import com.vf.admin.miaodong.entity.AppUser;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 用户管理
 */
public interface AfterUserService {

     /**
     * 详情
     */
     AppUser get(Integer id);

    /**
     * 添加/修改
     */
     void save(AppUser haoYou);

    /**
     * 后天管理获取所有用户
     * @param map
     * @param bean
     * @return
     */
     List<AppUser> findList(Map<String, Object> map, SplitPageBean bean);

     List<AppUser> findList1(Map<String, Object> map, SplitPageBean bean);
    /**
     * 获取下级用户的总充值金额
     * @param code 上级邀请码
     * @return
     */
    AppUser xiajiZongCzMoney(String code);

    /**
     * 根据邀请码查询用户
     * @param code
     * @return
     */
    AppUser getUserByCode(String code);

    //修改用户账号状态
    void upstate(Integer id,Integer state, Integer hour);

    /**
     * 修改用户视频直播权限
     * @param id
     * @param state
     */
    void upstateVideoStatus(Integer id,Integer state);

    /**
     * 修改用户实名认证
     * @param id
     * @param state
     */
    void upstateShiming(Integer id,Integer state);
    /**
     * 修改用户视频认证
     * @param id
     * @param state
     */
    void upstateShipin(Integer id,Integer state);
    /**
     * 修改用户语音直播权限
     * @param id
     * @param state
     */
    void upstateYuyinStatus(Integer id,Integer state);




    /** AccountUtil(调用)
     * @Description 更新金币数量
     * @Param: [id, jinbi]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/24
     */
    public void updatejinbi(Integer id, BigDecimal jindou);

    /**
     * 减少用户金币
     *
     * @Param: [id, jinbi]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/28
     * @Time: 16:10
     */
    void upJianjinbi(Integer id, BigDecimal jindou);

    /** AccountUtil(调用)
     * @Description 更新钻石数量
     * @Param: [id, zuanshi]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/24
     */
    public void updateZuanShi(Integer id, BigDecimal zuanshi);

    /**
     * 减少钻石数量
     *
     * @Param: [id, zuanshi]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/28
     * @Time: 16:10
     */
    void upJianZuanShi(Integer id, Integer zuanshi);

    /** AccountUtil(调用)
     * @Description 增加魅力值数量
     * @Param: [id, meili]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/24
     */
    public void updatemeili(Integer id, Integer meili);

    /**
     * 减少魅力值
     *
     * @Param: [id, meili]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/28
     * @Time: 16:11
     */
    void upJianmeili(Integer id, Integer meili);

    AppUser getByUserCodeOrGoodCodeExistUserId(Integer userId, Integer userCode);

    /**
     * 更新用户靓号
     * @param userId
     * @param goodUserCode
     */
    void updateGoodUserCode(Integer userId, Integer goodUserCode);

    void upWhiteStatus(Integer id,Integer state);
}
